# 字符串之间可以进行比较运算
print('3' > '4')  # False
print('15' < '18')  # True
print('19' > '5')  # False

print("-------------------------")

# 字符串之间比较大小的规则
# 1. 字符串间比较大小,是按照字符的编码序号进行比较的
# ascii码: 美国信息交换标准码 一共127位 代表127个常用字符,可以满足当时的美国正常通讯需求
# GBK: 国标扩展码 内部包含了所有的汉字 可以将二进制数据转码为中文字符, 兼容ascii码
# unicode码: 也叫做万国码, 包含了全世界大部分国家的语言, 符号,表情等, 包括unicode8  unicode 16  unicode32 等, 数字越大,包含的字符数量越多, 兼容ascii码
# 规则:  数字 < 大写字母 < 小写字母 < 汉字
print('A' > 'a')  # False
print('A' < '传')  # True

print("-------------------------")
# 2. 字符串中有多个字符,则从左至右依次对比,如果一个字符大则大, 如果字符大小相同,则继续比较下一位 (空值最小)
# 两个字符串进行比较,先从第一位开始比较, 1 小于 5 则 5大,后续将不继续比较
print('19' > '5')  # False

# 两个字符串进行比较,先从第一位开始比较,两个字符串第一位都是5,则继续比较第二位, 1 < 3 所以53大
print('51' < '53') # True

# 两个字符串进行比较,先从第一位开始比较,两个字符串第一位都是3,则继续比较第二位, 第二位依旧相同都等于3,则继续比较第三位,第三位一个有值一个没有值,则有值的大, 所以331大
print('331' < '33') # False

print("-------------------------")
# 思考
print('998' > '99a')  # False
print('12' > '123')  # False
print('123' > ' 123')  # True

# 注意: 一般我们不会使用字符串进行数字逻辑的比较,而一般比较字符串是为了排序

